<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="root">
    <!-- ref的定义的值就是this.$refs.名称 -->
    <input type="text" ref="username">
    <button @click="adduser">获取用户名</button>

    <hr>
    <Child ref='child'></Child>
  </div>
  <script src="./js/vue.js"></script>
  <script>
    // 子组件
    const Child = {
      data() {
        return {
          num: 1
        }
      },
      template: `
        <div>
          Child1：{{ num }}
        </div>
      `,
      methods:{
        abc(){
          // 在子组件中通过this.$parent来得到当前父组件对象实例  不推荐使用
          console.log(this.$parent)
          console.log(this.$parent.num)
          console.log('abbbaaefwe')
        }
      }
    }
    // 父组件
    new Vue({
      el: '#root',
      data: {
        num: 10
      },
      // 局部组件
      components: { Child },
      methods: {
        adduser(){
          // 如果ref定义在普通的html中则返回的dom对象
          let value = this.$refs.username.value
          // 如果ref写在了自定义组件上面，则返回当前组件的实例, 通过实例，可以在父组件中得到当前组件中的所有信息
          this.$refs.child.num=100
          this.$refs.child.abc()
        }
      }
    })
  </script>
</body>

</html>